<template>
  <div>
    <el-container>
      <el-form
        label-position="right"
        ref="form"
        :model="form"
        label-width="100px"
      >
       <el-row v-for="(subModule, index) in subModuleList" :key="subModule"
          >{{ subModule }}:
            <el-checkbox-group v-if="index == 0" v-model="form.defining_feature">
            <el-col :span="4" v-for="item in subModuleItemList[index]" :key="item">
              <el-checkbox :label="item">{{ item }}</el-checkbox>
            </el-col>
          </el-checkbox-group>
          <el-checkbox-group v-if="index == 1" v-model="form.risk_group">
            <el-col :span="4" v-for="item in subModuleItemList[index]" :key="item">
              <el-checkbox :label="item">{{ item }}</el-checkbox>
            </el-col>
          </el-checkbox-group>
          <el-checkbox-group v-if="index == 2" v-model="form.risk_factor">
            <el-col :span="4" v-for="item in subModuleItemList[index]" :key="item">
              <el-checkbox :label="item">{{ item }}</el-checkbox>
            </el-col>
          </el-checkbox-group>
          <el-checkbox-group v-if="index == 3" v-model="form.relevant_factor">
            <el-col :span="4" v-for="item in subModuleItemList[index]" :key="item">
              <el-checkbox :label="item">{{ item }}</el-checkbox>
            </el-col>
          </el-checkbox-group>
          <el-checkbox-group v-if="index == 4" v-model="form.evidence">
            <el-col :span="4" v-for="item in subModuleItemList[index]" :key="item">
              <el-checkbox :label="item">{{ item }}</el-checkbox>
            </el-col>
          </el-checkbox-group>
        </el-row>
      </el-form>
    </el-container>
  </div>
</template>

<script>
var BaaS = require("minapp-sdk");
let clientID = "9ed0a3da89683e42d793";
BaaS.init(clientID);
export default {
  name: "manage",
  props: {
    module_manage: {
      type: String,
      default: "",
    },
  },
  data() {
    return {
      subModuleList: [    
        "定义性特征",
        "危险人群",
        "危险因素",
        "相关因素",
        "循证知识"
        ],
      subModuleListSet: new Set(),
      subModuleItemList: [
        [
            "不安全的环境",
            "分心",
            "就业问题",
            "人际关系冲突",
            "照顾者缺乏安全预防措施的知识"
        ],
        [
            "爱与怜悯交织在一起",
            "伴侣之间冲突",
            "报复的想法",
            "暴怒",
            "被抛弃感",
            "被他人控制情感",
            "避免冲突",
            "表达既往创造的方式减少",
            "不安全",
            "不成熟",
            "不承认疾病对生活的影响",
            "不断升级的冲突",
            "不合理的情感",
            "不快乐",
            "不满足",
            "不实际的行为",
            "不适当的愤怒表达",
            "不信任",
            "采用健康照护专业人员不推荐的治疗方法",
            "尝试决策时困扰",
            "嘲笑他人",
            "冲动行为",
            "带有敌意的笑",
            "敌对",
            "定向偏好释放压力而非达到目标",
            "对比自己更强大的力量愤怒",
            "对父母语言虐待",
            "对孩子语言虐待",
            "对批评过度敏感",
            "对他人的傲慢态度",
            "对同伴语言虐待",
            "对无礼过度敏感",
            "对选择不确定",
            "对选择犹豫",
            "对自然不感兴趣",
            "对遵行个人道德选择感到痛苦或苦恼",
            "儿童学业障碍",
            "分离史",
            "愤怒",
            "封闭式沟通系统",
            "否认不足",
            "否认对病弱的恐惧",
            "否认对死亡的恐惧",
            "否认问题",
            "复杂性哀伤",
            "尴尬",
            "感到被误解",
            "感到不被关爱",
            "感知缺乏父母支持",
            "感知缺乏生活的意义",
            "感知社区无能为力",
            "感知社区易感性",
            "感知痛苦",
            "攻击",
            "沟通技能无效",
            "关系改变",
            "关系无效",
            "过度警觉",
            "过渡应激",
            "合理化",
            "和他人感受不同",
            "黑朦",
            "忽视对家庭成员的义务",
            "荒谬的沟通模式",
            "挥之不去的怨恨",
            "回避行为",
            "混乱",
            "肌肉紧张",
            "肌肉痉挛",
            "集中力改变",
            "集中物质使用的特殊场合",
            "家庭成员相互联系，以促进彼此成长与成熟的能力下降",
            "家庭动力破坏",
            "家庭否认",
            "家庭关系变差",
            "家庭仪式受损",
            "将失败合理化",
            "焦虑",
            "角色功能改变",
            "接纳不足",
            "解离性遗忘",
            "紧张",
            "紧张的生理体征",
            "惊恐",
            "惊恐发作",
            "精神错乱",
            "警觉过度",
            "拒绝和精神领袖互动",
            "拒绝和重要他人互动",
            "拒绝获得帮助",
            "拒绝健康照护",
            "决策受损",
            "决策延迟",
            "绝望",
            "苛刻的自我判断",
            "恐怖",
            "恐惧",
            "恐惧感",
            "控制性沟通方式",
            "哭泣",
            "夸大的吃惊反应",
            "夸张",
            "困扰",
            "困扰的生理体征",
            "矛盾的沟通方式",
            "梦魇",
            "明确当前所思考行为的非预期后果",
            "难以保持亲密关系",
            "难以建立人际关系",
            "难以进行生命周期过渡",
            "难以快乐",
            "内疚",
            "尼古丁成瘾",
            "抛弃",
            "批判",
            "平静减少",
            "侵入性梦境",
            "侵入性思想",
            "情感改变",
            "情感隔离",
            "情绪波动",
            "躯体创伤",
            "躯体接触减少",
            "取代对环境影响的恐惧",
            "取代症状的来源",
            "权力斗争",
            "缺乏参与治疗",
            "缺乏对家庭成员个体性的尊重",
            "缺乏对家庭成员自主性的尊重",
            "缺乏关系技能",
            "缺乏坚持治疗",
            "缺乏解决问题的技巧",
            "缺乏凝聚力",
            "缺乏社区参与",
            "缺乏物质滥用的知识",
            "缺乏勇气",
            "缺勤增加",
            "入睡困难",
            "三角家庭关系",
            "丧失",
            "社交隔离",
            "社区冲突过多",
            "社区患病率增加",
            "社区未能满足其成员的期望",
            "社区问题高发",
            "神经感觉过敏",
            "生活质量下降",
            "失败",
            "失眠",
            "实际测试改变",
            "食欲差",
            "事故增加",
            "受伤",
            "疏远",
            "睡眠障碍导致次日不良后果",
            "说谎",
            "谈论痛苦的事件时使用鄙视的观点",
            "谈论痛苦的事件时使用鄙视的姿势",
            "头痛",
            "投射责备",
            "投射责任",
            "突然改变宗教行为",
            "妄想",
            "违背诺言",
            "维持关系困难",
            "伪造",
            "为物质滥用的行为承担责任",
            "未感知到危险的相关性",
            "未感知到症状的相关性",
            "未能完成发展性任务",
            "无法表达各种感受",
            "无法参与宗教活动",
            "无法合理的接受帮助",
            "无法建设性处理创伤经历",
            "无法接受帮助",
            "无法接受各种感受",
            "无法满足家庭成员的安全需要",
            "无法满足家庭成员的精神需求",
            "无法满足家庭成员的情感需求",
            "无法祈祷",
            "无法适应改变",
            "无法体验卓越的事物",
            "无法自我反省",
            "无价值",
            "物质滥用",
            "喜怒无常",
            "现实扭曲",
            "心悸",
            "心境改变",
            "形成物质使用模式",
            "休克",
            "羞愧",
            "羞辱",
            "需要精神领导",
            "寻求健康照护延迟",
            "寻求肯定",
            "寻求同意",
            "压力相关躯体病患",
            "压抑",
            "压抑的情感",
            "遗尿",
            "抑郁",
            "易怒",
            "应对策略无效",
            "与同伴沟通无效",
            "与支持系统分离",
            "阅读精神读物不感兴趣",
            "在尝试决策时质疑道德规范",
            "在尝试决策时质疑道德价值",
            "在尝试决策时质疑道德原则",
            "在尝试决策时质疑个人价值",
            "在尝试决策时质疑个人信仰",
            "早醒",
            "躁动",
            "长期存在家庭问题",
            "指责",
            "质疑身份",
            "质疑生活的意义",
            "质疑痛苦的意义",
            "主诉感觉麻木",
            "自责",
            "最小化症状"
        ],
        [
            "爱人受到严重伤害",
            "爱人受到严重威胁",
            "暴露于灾害",
            "暴露于灾难",
            "处于人们常见经历范围外的事",
            "创伤性事件的持续时间",
            "抵抗治疗的家族史",
            "对物质滥用的遗传倾向性",
            "非预期的生活事件",
            "分娩",
            "个人家庭破坏",
            "婚姻状况",
            "经济窘迫",
            "决策者的物理距离",
            "离开家庭",
            "流行病暴露",
            "目击暴力性死亡",
            "目击残害",
            "虐待史",
            "企图自杀史",
            "强奸",
            "人力服务职业",
            "丧失自主性",
            "涉及多种死亡事件的暴露",
            "生活转型",
            "生物学因素",
            "收到坏消息",
            "死亡暴露",
            "物质滥用家族史",
            "刑事受害史",
            "严重的事故",
            "灾难史",
            "战争暴露",
            "战争犯史",
            "折磨史",
            "种族冲突",
            "重要他人死亡",
            "自然灾害暴露",
            "自身受到严重威胁"
        ],
        [
            "哀伤",
            "不确定感",
            "不愉快现实的威胁",
            "成瘾性人格",
            "冲突的信息来源",
            "达成生命终止决策困难",
            "达成治疗决策困难",
            "道德规范支持互不一致的行为",
            "道德价值支持互不一致的行为",
            "道德原则支持互不一致的行为",
            "父母对进食行为的负面影响",
            "感知应对强烈情感不足",
            "感知有未完成的事业",
            "个人价值不清楚",
            "个人信仰不清楚",
            "害怕分离",
            "害怕后果",
            "害怕丧失自主性",
            "害怕失败",
            "害怕死亡",
            "害怕羞辱",
            "环境不利于需求",
            "家庭动力改变",
            "价值系统的感知威胁",
            "将事件感知为创伤",
            "解决问题的资源不足",
            "紧张性刺激",
            "进入青春期后自尊改变",
            "进食障碍",
            "决策干扰",
            "决策者之间冲突",
            "夸大的责任感",
            "躯体不适",
            "缺乏对他人的信心",
            "缺乏控制感",
            "缺乏情感支持",
            "缺乏韧性",
            "缺乏社会支持",
            "缺乏社区资源",
            "缺乏支持系统",
            "缺乏自信",
            "社会疏远",
            "社会文化剥夺",
            "社区系统不存在",
            "生存者角色",
            "睡眠卫生不良",
            "体验关爱障碍",
            "文化冲突",
            "无法原谅",
            "心理忽视",
            "心理虐待",
            "用于道德决策的信息冲突",
            "用于伦理决策的信息冲突",
            "与道德义务冲突",
            "与环境相关的改变",
            "增加对他人的依赖",
            "自伤性行为",
            "自我感知与价值观系统冲",
            "自我力量减弱",
            "自我疏远",
            "宗教行为改变",
            "宗教仪式改变",
            "做决策的时间紧张",
            "做决策缺乏经验"
        ],
        [
            "伴随进食的躯体问题",
            "伴随喂养的躯体问题",
            "部分躯体功能丧失",
            "部分躯体丧失",
            "即将到来的死亡",
            "解离身份障碍",
            "酒精中毒",
            "亲密功能障碍",
            "躯体健康问题",
            "药物中毒",
            "治疗方案",
            "主动死亡"
        ]
      ],
      submoduleItemListSet: new Set(),
      form: {
        defining_feature: [],
        risk_group: [],
        risk_factor: [],
        relevant_factor: [],
        evidence: [],
      },
      formRules: {},
    };
  },
  methods: {
    getSubModuleItem(index1,index2) {
        let itemSet = new Set();
        // this.subModuleItemList[index2] = []; //将当前数组的元素设置为数组就是二维数组了
        let query = new BaaS.Query();
        let overall_eval = new BaaS.TableObject("overall_eval_item");
        query.compare("module", "=", this.module_manage);
        query.compare("submodule", "=", this.subModuleList[index2]);
        overall_eval
          .setQuery(query)
          .select(["submodule", "item"])
          .limit(1000)
          .offset(index1)
          .find()
          .then((res) => {
            let datas = res.data.objects;
            datas.forEach((data) => {
              itemSet.add(data.item);
            });
            if (res.data.meta.next !== null) {
              this.getSubModuleItem(index1 + 1000,index2);
            } else {
              this.subModuleItemList.push(Array.from(itemSet));
              console.log(this.subModuleItemList[index2]);
            }
          });
    },
    getSubModule(index) {
      let query = new BaaS.Query();
      let overall_eval = new BaaS.TableObject("overall_eval_item");
      query.compare("module", "=", this.module_manage);
      overall_eval
        .setQuery(query)
        .select(["module", "submodule"])
        .limit(1000)
        .offset(index)
        .find()
        .then((res) => {
          let datas = res.data.objects;
          datas.forEach((data) => {
            this.subModuleListSet.add(data.submodule);
          });
          if (res.data.meta.next !== null) {
            this.getSubModule(index + 1000);
          } else {
            this.subModuleList = Array.from(this.subModuleListSet);
            console.log(this.subModuleList);
            for (let i = 0; i < this.subModuleList.length; i++) {
                this.getSubModuleItem(0,i);
            }   
          }
        });
        
    },
    init() {
      this.getSubModule(0);
    },
  },
  mounted() {
    // this.init();
  },
};
</script>

<style>
</style>